/*
# CKEDITOR Edit-In Place jQuery Plugin.
# Created By Dave Earley.
# www.Dave-Earley.com
*/

$.fn.ckeip = function (options, callback) {

    var original_html = $(this);
    var defaults = {
        e_height: '10',
        data: {},
        e_url: '',
        e_hover_color: '#ffffe5',
        e_hover_enabled: true,
        ckeditor_config: '',
        e_width: '50'
    };
    var settings = $.extend({}, defaults, options);

    return this.each(function () {
        var eip_html = $(this).html();
        var u_id = Math.floor(Math.random() * 99999999);

        $(this).before("<div id='ckeip_" + u_id + "'  style='display:none;'><div class='ckeip_toolbar'><a href='#' class='ckeip_save button primary pill' id='save_ckeip_" + u_id + "'>Save</a> <a href='#' class='ckeip_cancel button negative pill' id='cancel_ckeip_" + u_id + "'>Cancel </a></div><textarea class='ckeip_textarea' id ='ckeip_e_" + u_id + "' cols='" + settings.e_width + "' rows='" + settings.e_height + "'  >" + eip_html + "</textarea></div>");

        $('#ckeip_e_' + u_id + '').ckeditor(settings.ckeditor_config);

        $(this).bind("dblclick", function () {
            $(this).hide();
            $('#ckeip_' + u_id + '').slideDown('fast');
        });

        if (settings.e_hover_enabled) {
            $(this).hover(function () {
                $(this).css({
                    backgroundColor: settings.e_hover_color
                });
            }, function () {
                $(this).css({
                    backgroundColor: ''
                });
            });
        }
        
        var cleanup = function() {
            $('#ckeip_' + u_id + '').slideUp('fast');
            $(original_html).show();
        }

        $("#cancel_ckeip_" + u_id + "").click(function () {
            cleanup();
            return false;
        });

        $("#save_ckeip_" + u_id + "").click(function () {
            var ckeip_html = $('#ckeip_e_' + u_id + '').val();
            $.post(settings.e_url, {
                content: ckeip_html,
                data: settings.data
            }, function (response) {
                if (typeof callback == "function") 
                    callback(response);

                $(original_html).html(ckeip_html);
                cleanup();
            });;
            return false;

        });
    });
};